home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / falcon / programm.ing / nt_dsp1.lzh / NT_DSP1.MSA / DSP_SUMA.TXT < prev   
Text File  |  1980-01-28  |  6KB  |  140 lines

  1. --------------------------------------------------------------------------------
  2.         Details of the Motorola DSP 56001
  3. --------------------------------------------------------------------------------
  4. converted from NeXT by Spiff of ORION
  5. Call ORION's Paradise for more ST & Falcon!!!-warez!  ++41 01 709 0275  
  6.  
  7. Memory Map
  8. ----------
  9.  
  10. The following table describes the memory map for the DSP private RAM (8K words).
  11.  
  12. Start    End        Name
  13. p:0    p:$1FF        On-chip program RAM (`$' denotes hex)
  14. p:$2000    p:$3FFF        Off-chip program RAM, image 1
  15. p:$A000    p:$BFFF        Off-chip program RAM, image 2
  16. x:0    x:$FF        On-chip data RAM, x bank
  17. x:$100    x:$1FF        On-chip data ROM, x bank (Mu-Law, A-law tables)
  18. x:$2000    x:$3FFF        Off-chip data RAM, x bank, image 1
  19. x:$A000    x:$AFFF        Off-chip data RAM, x bank, image 2
  20. y:0    y:$FF        On-chip data RAM, y bank
  21. y:$100    y:$1FF        On-chip data ROM, y bank (Sine wave cycle)
  22. y:$2000    y:$3FFF        Off-chip data RAM, y bank, image 1
  23. y:$A000    y:$AFFF        Off-chip data RAM, y bank, image 2
  24.  
  25. Off-chip memory exists in two 252 images 272 for each space.  In image 1, all 
  26. three memory spaces occupy the same physical memory (in other words, the 
  27. X/Y~, PS~, and DS~ pins of the DSP56001 are not connected when address 
  28. line A15 is low).  
  29. In image 2, x and y are split into separate 4K banks, and p overlays them
  30. both with an 8K image (that is, X/Y~ is used as address line A12 and PS~ and 
  31. DS~ are not connected when A15 is high).  External memory starts at 
  32. 8K ($2000) instead of 512 ($200) because address line A13 in the
  33. DSP must be high to enable external DSP RAM.  (Note that there is another 
  34. enable for this RAM in the System Control Register 2.)
  35.  
  36.  
  37.  
  38. DSP56001 Instruction Set Summary
  39. --------------------------------
  40.  
  41. The following notation is used in the summary:
  42. Notation    Denotes
  43. `*'        Instructions that don't allow parallel data moves
  44. [a,b]        One of a or b
  45. <a,b>        Either a,b or b,a
  46. <n>        A nonnegative integer
  47. #I<n>        n-bit immediate value
  48. A<n>        n-bit absolute address
  49. An        A0, A1, or A2  (similarly for Bn)
  50. Xn        X0 or X1  (similarly for Yn)
  51. Rn        R0, R1, R2, R3, R4, R5, R6, or R7  (similarly for Nn, Mn)
  52. AnyEa        Addressing modes (Rn)[
  53. AnyXY        [x,y]:AnyEa
  54. AnyIO        [x,y]:<<pp (x or y peripheral address, 6 bits, 1's extended)
  55. Creg        Registers Mn, SR, OMR, SP, SSH, SSL, LA, LC
  56. Dreg        Registers Xn, Yn, An, Bn, A, B
  57. Areg        Registers Rn, Nn
  58. AnyReg        Registers Dreg, Areg, Creg
  59. cc        CC(HS) CS(LO) EC EQ ES GE GT LC LE LS LT MI NE NR PL NN
  60.  
  61. left-justified moves:    ->[A,B,Xn,Yn]
  62. right-justified moves:    ->[An,Bn,Rn,Nn]
  63.  
  64. Arithmetic Instructions:
  65. ABS [A,B]            Absolute Value
  66. ADC [X,Y],[A,B]            Add Long with Carry
  67. ADD [X,Xn,Y,Yn,B,A],[A,B]    Add
  68. ADDL [B,A],[A,B]        Shift Left then Add  (D=2*D+S)
  69. ADDR [B,A],[A,B]        Shift Right then Add  (D=D/2+S)
  70. ASL [A,B]            Arithmetic Shift Left  (D1=D1*2)
  71. ASR [A,B]            Arithmetic Shift Right  (D1=D1/2)
  72. CLR [A,B]            Clear Accumulator
  73. CMP [Xn,Yn,B,A],[A,B]        Compare  (CCR=Sign(D1
  74. CMPM [Xn,Yn,B,A],[A,B]        Compare magnitude  (CCR=Sign(D
  75. *DIV [Xn,Yn],[A,B]        Divide Iteration  (D/S iteration)
  76. MAC                 Signed Multiply-Add  (no X1*X1, Y1*Y1)
  77. MACR                 Signed Multiply, Accumulate, and Round
  78. MPY                 Signed Multiply  (no X1*X1, Y1*Y1)
  79. MPYR                 Signed Multiply-Round  (no X1*X1, Y1*Y1)
  80. NEG [A,B]            Negate Accumulator
  81. *NORM [A,B]            Normalize Accumulator Iteration
  82. RND [A,B]            Round Accumulator
  83. SBC [X,Y],[A,B]            Subtract Long with Carry  (D = D
  84. SUB [X,Xn,Y,Yn,B,A],[A,B]    Subtract  (D = D
  85. SUBL [B,A],[A,B]        Shift Left then Subtract  (D = 2*D
  86. SUBR [B,A],[A,B]        Shift Right then Subtract  (D = D/2
  87. *Tcc [Xn,Yn,B,A],[A,B]        Transfer Conditionally
  88. TFR [Xn,Yn,B,A],[A,B]        Transfer Data ALU Register
  89. TST [A,B]            Test Accumulator
  90.  
  91. Logical Instructions:
  92. AND [Xn,Yn],[A,B]        Logical AND  (D1=D1&S)
  93. *ANDI #I8,[MR,CCR,OMR]        AND Immediate with Control Register
  94. EOR [Xn,Yn],[A,B]        Logical Exclusive OR  (D1=D1 XOR S)
  95. LSL [A,B]            Logical Shift Accumulator Left  (D1=D1<<1)
  96. LSR [A,B]            Logical Shift Accumulator Right  (D1=D1>>1)
  97. NOT [A,B]            Logical Complement on Accumulator  (D1=~D1)
  98. OR [Xn,Yn],[A,B]        Logical Inclusive OR  (D1=D1S)
  99. *ORI #I8,[MR,CCR,OMR]        OR Immediate with Control Register
  100. ROL [A,B]            Rotate Accumulator Left  ([C,D1] ROL)
  101. ROR [A,B]            Rotate Accumulator Right  ([D1,C] ROR)
  102.  
  103. Bit Manipulation Instructions:
  104. *BCLR #B5,AnyXY            Bit Test and Clear  (C = Selected bit)
  105. *BSET #B5,AnyXY            Bit Test and Set  (C = Selected bit)
  106. *BCHG #B5,AnyXY            Bit Test and Change  (C = Selected bit)
  107. *BTST #B5,AnyXY            Bit Test on Memory  (C = Selected bit)
  108. *JCLR #B5,[AnyXY,AnyIO],xxxx    Jump if Bit Clear
  109. *JSET #B5,[AnyXY,AnyIO],xxxx    Jump if Bit Set
  110. *JSCLR #B5,[AnyXY,AnyIO],xxxx    Jump to Subroutine if Bit Clear
  111. *JSSET #B5,[AnyXY,AnyIO],xxxx    Jump to Subroutine if Bit Set
  112.  
  113. Loop Instructions:
  114. *DO [[x,y]:[AnyEa,A12],AnyReg],L  Start Hardware Loop  (L=Label after end)
  115. *ENDDO                  Exit from Hardware Loop
  116.  
  117. Move Instructions:
  118. *LUA (Rn)[            Load Updated Register
  119. MOVE (NOP)            Move Data
  120. *MOVEC <AnyXY,Creg>        Move Control Register
  121. *MOVEC [#I16,#I8],Creg        Move Control Register
  122. *MOVEC <Creg,AnyReg>        Move Control Register
  123. *MOVEM <p:AnyEa,AnyReg>        Move Program Memory
  124. *MOVEP <[AnyReg,AnyXY],AnyIO>    Move Peripheral Data
  125. *MOVEP #I24,AnyIO        Move Peripheral Data
  126.  
  127. Program Control Instructions:
  128. *Jcc [A12,AnyEa]        Jump Conditionally
  129. *JMP [A12,AnyEa]        Jump
  130. *JScc [A12,AnyEa]        Jump to Subroutine Conditionally
  131. *JSR [A12,AnyEa]        Jump to Subroutine
  132. *NOP                No Operation
  133. *REP [AnyXY,#I12,AnyReg]    Repeat Next Instruction
  134. *RESET                Reset Peripherals
  135. RTI                Return from Interrupt
  136. RTS                Return from Subroutine
  137. *STOP                Stop Processing
  138. *SWI                Software Interrupt
  139. *WAIT                Wait for Interrupt
  140.